package it.polimi.authentication.web.beans.UTENTE;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;

import it.polimi.authentication.ejb.usermanagement.ListaEscursione;
import it.polimi.authentication.ejb.usermanagement.ListaHotel;
import it.polimi.authentication.ejb.usermanagement.ListaMezzo;
import it.polimi.authentication.ejb.usermanagement.PacchettoPredefinito;
import it.polimi.authentication.ejb.usermanagement.UserMgr;
import it.polimi.authentication.ejb.usermanagement.dto.EscursioneDTO;
import it.polimi.authentication.ejb.usermanagement.dto.HotelDTO;
import it.polimi.authentication.ejb.usermanagement.dto.MezzoDTO;
import it.polimi.authentication.ejb.usermanagement.dto.PacchettoEscursioneDTO;
import it.polimi.authentication.ejb.usermanagement.dto.PacchettoHotelDTO;
import it.polimi.authentication.ejb.usermanagement.dto.PacchettoMezzoDTO;
import it.polimi.authentication.ejb.usermanagement.dto.PacchettoPredefinitoDTO;
import it.polimi.authentication.ejb.usermanagement.dto.Pacchetto_cittaDTO;

import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.persistence.Temporal;

import org.primefaces.model.DualListModel;

@ManagedBean (name="CreaPers")
@SessionScoped
public class CreaPacchettoPersonalizzato {
	
	@EJB
	private ListaEscursione EscursioneManager;
	
	@EJB 
	private ListaHotel HotelManager;
	
	@EJB
	private ListaMezzo MezzoManager;
	
	@EJB
	private PacchettoPredefinito PacchettoManager;
	
	@EJB
	private UserMgr UserManager;
	
	private Pacchetto_cittaDTO current2 = new Pacchetto_cittaDTO();
	private PacchettoMezzoDTO currentA = new PacchettoMezzoDTO();
	private PacchettoMezzoDTO currentR = new PacchettoMezzoDTO();
	private PacchettoHotelDTO currentH = new PacchettoHotelDTO();
	private ArrayList <String> currentE = new ArrayList <String>();
	
	private ArrayList<PacchettoPredefinitoDTO> ListaPacchetto;
	private PacchettoPredefinitoDTO Pacchetto = new PacchettoPredefinitoDTO();
	private int idPacchetto = 0;
	
	@Temporal(javax.persistence.TemporalType.TIMESTAMP)
    private Date dataPartenza;
	
	@Temporal(javax.persistence.TemporalType.TIMESTAMP)
    private Date dataRitorno;
	
    private String cittaPacchetto = "Citta del Pacchetto";
    private String cittaPartenzaPacchetto;
    private DualListModel<EscursioneDTO> dualListaEscursione  = new DualListModel<EscursioneDTO>();
    private ArrayList<EscursioneDTO> listaEscursionePacchetto = new ArrayList<EscursioneDTO>(); //target
    private String nomeHotelPacchetto;
    
    private int idMezzoAndataPacchetto;
    private int idMezzoRitornoPacchetto;
    private int vecchioMezzoAndata;
    private int vecchioMezzoRitorno;
    
	private ArrayList<MezzoDTO> ListaMezzo;
	private MezzoDTO mezzoAndata;
	private MezzoDTO mezzoRitorno;
	//private BigDecimal prezzoMezzo;
	//private int idMezzo;
	//private String tipoMezzo;
	//private String luogoPartenzaMezzo;
	//private String luogoArrivoMezzo;
    //private int orePartenzaMezzo;
    //private int oreArrivoMezzo;
    //private int minutiPartenzaMezzo;
    //private int minutiArrivoMezzo;
	
	private ArrayList<HotelDTO> ListaHotel;
//	private String nomeHotel;
//	private BigDecimal prezzoHotel;
//	private int stelleHotel;
	
	private ArrayList<EscursioneDTO> ListaEscursioni; //target
	private String nomeEscursione;
	private BigDecimal prezzoEscursione;
	private String mezzoEscursione;

	private ArrayList<MezzoDTO> ListaMezzoRitorno;

	private ArrayList<EscursioneDTO> listaEscursioneCheckBox;
	
	private Date DatadiOggi = new Date();
	
	private int numeroPersone;
	
	public String getNomeEscursione() {
		return nomeEscursione;
	}
	
	public void start()
	{
		System.out.println("t'ammazzo");
		FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("CreaPers", null);	
	}

	public void setNomeEscursione(String nomeEscursione) {
		this.nomeEscursione = nomeEscursione;
	}

	public BigDecimal getPrezzoEscursione() {
		return prezzoEscursione;
	}

	public void setPrezzoEscursione(BigDecimal prezzoEscursione) {
		this.prezzoEscursione = prezzoEscursione;
	}

	public String getMezzoEscursione() {
		return mezzoEscursione;
	}

	public void setMezzoEscursione(String mezzoEscursione) {
		this.mezzoEscursione = mezzoEscursione;
	}

	public ArrayList<EscursioneDTO> getListaEscursioni() {
		return ListaEscursioni;
	}
	
	public ArrayList<HotelDTO> getListaHotel() {
		return ListaHotel;
	}

	public void setListaHotel(ArrayList<HotelDTO> listaHotel) {
		ListaHotel = listaHotel;
	}
	
	public void setListaEscursioni(ArrayList<EscursioneDTO> listaEscursioni) {
		ListaEscursioni = listaEscursioni;
	}

//	public String getNomeHotel() {
//		return nomeHotel;
//	}
//
//	public void setNomeHotel(String nomeHotel) {
//		this.nomeHotel = nomeHotel;
//	}
//
//	public BigDecimal getPrezzoHotel() {
//		return prezzoHotel;
//	}
//
//	public void setPrezzoHotel(BigDecimal prezzoHotel) {
//		this.prezzoHotel = prezzoHotel;
//	}
//
//	public int getStelleHotel() {
//		return stelleHotel;
//	}
//
//	public void setStelleHotel(int stelleHotel) {
//		this.stelleHotel = stelleHotel;
//	}
	
	public ArrayList<MezzoDTO> getListaMezzo() {
		return ListaMezzo;
	}

	public void setListaMezzo(ArrayList<MezzoDTO> listaMezzo) {
		ListaMezzo = listaMezzo;
	}

//	public BigDecimal getPrezzoMezzo() {
//		return prezzoMezzo;
//	}
//
//	public void setPrezzoMezzo(BigDecimal prezzoMezzo) {
//		this.prezzoMezzo = prezzoMezzo;
//	}

//	public int getIdMezzo() {
//		return idMezzo;
//	}
//
//	public void setIdMezzo(int idMezzo) {
//		this.idMezzo = idMezzo;
//	}

//	public String getTipoMezzo() {
//		return tipoMezzo;
//	}
//
//	public void setTipoMezzo(String tipoMezzo) {
//		this.tipoMezzo = tipoMezzo;
//	}
//
//	public String getLuogoPartenzaMezzo() {
//		return luogoPartenzaMezzo;
//	}
//
//	public void setLuogoPartenzaMezzo(String luogoPartenzaMezzo) {
//		this.luogoPartenzaMezzo = luogoPartenzaMezzo;
//	}
//
//	public String getLuogoArrivoMezzo() {
//		return luogoArrivoMezzo;
//	}
//
//	public void setLuogoArrivoMezzo(String luogoArrivoMezzo) {
//		this.luogoArrivoMezzo = luogoArrivoMezzo;
//	}
//
//	public int getOrePartenzaMezzo() {
//		return orePartenzaMezzo;
//	}
//
//	public void setOrePartenzaMezzo(int orePartenzaMezzo) {
//		this.orePartenzaMezzo = orePartenzaMezzo;
//	}
//
//	public int getOreArrivoMezzo() {
//		return oreArrivoMezzo;
//	}
//
//	public void setOreArrivoMezzo(int oreArrivoMezzo) {
//		this.oreArrivoMezzo = oreArrivoMezzo;
//	}
//
//	public int getMinutiPartenzaMezzo() {
//		return minutiPartenzaMezzo;
//	}
//
//	public void setMinutiPartenzaMezzo(int minutiPartenzaMezzo) {
//		this.minutiPartenzaMezzo = minutiPartenzaMezzo;
//	}
//
//	public int getMinutiArrivoMezzo() {
//		return minutiArrivoMezzo;
//	}
//
//	public void setMinutiArrivoMezzo(int minutiArrivoMezzo) {
//		this.minutiArrivoMezzo = minutiArrivoMezzo;
//	}

	public PacchettoPredefinito getPacchettoManager() {
		return PacchettoManager;
	}

	public void setPacchettoManager(PacchettoPredefinito pacchettoManager) {
		PacchettoManager = pacchettoManager;
	}

	public ArrayList<PacchettoPredefinitoDTO> getListaPacchetto() {
		return ListaPacchetto;
	}

	public void setListaPacchetto(ArrayList<PacchettoPredefinitoDTO> listaPacchetto) {
		ListaPacchetto = listaPacchetto;
	}

	public Date getDataPartenza() {
		return dataPartenza;
	}

	public void setDataPartenza(Date dataPartenza) {
		this.dataPartenza = dataPartenza;
		if(dataPartenza.compareTo(dataRitorno)==1) dataRitorno = dataPartenza;
	}

	public Date getDataRitorno() {
		return dataRitorno;
	}

	public void setDataRitorno(Date dataRitorno) {
		this.dataRitorno = dataRitorno;
	}

	public String getCittaPacchetto() {
		return cittaPacchetto;
	}

	public void setCittaPacchetto(String cittaPacchetto) {
		this.cittaPacchetto = cittaPacchetto;
	}

	public String getCittaPartenzaPacchetto() {
		return cittaPartenzaPacchetto;
	}

	public void setCittaPartenzaPacchetto(String cittaPartenzaPacchetto) {
		this.cittaPartenzaPacchetto = cittaPartenzaPacchetto;
	}

	public ArrayList<EscursioneDTO> getNomeEscursionePacchetto() {
		return listaEscursionePacchetto;
	}

	public void setNomeEscursionePacchetto(ArrayList<EscursioneDTO> nomeEscursionePacchetto) {
		this.listaEscursionePacchetto = nomeEscursionePacchetto;
	}

	public String getNomeHotelPacchetto() {
		return nomeHotelPacchetto;
	}

	public void setNomeHotelPacchetto(String nomeHotelPacchetto) {
		this.nomeHotelPacchetto = nomeHotelPacchetto;
	}

	public int getIdMezzoAndataPacchetto() {
		return idMezzoAndataPacchetto;
	}

	public void setIdMezzoAndataPacchetto(int idMezzoAndataPacchetto) {
		this.idMezzoAndataPacchetto = idMezzoAndataPacchetto;
	}

	public int getIdMezzoRitornoPacchetto() {
		return idMezzoRitornoPacchetto;
	}

	public void setIdMezzoRitornoPacchetto(int idMezzoRitornoPacchetto) {
		this.idMezzoRitornoPacchetto = idMezzoRitornoPacchetto;
	}
	
	public int getIdPacchetto() {
		return idPacchetto;
	}

	public void setIdPacchetto(int idPacchetto) {
		this.idPacchetto = idPacchetto;
	}

	public String compraPers(){
		
		if (!current2.getCitta().isEmpty()&& !Pacchetto.getNome().isEmpty() &&!currentH.getNomeHotel().isEmpty() && currentR.getMezzoDiTrasporto() !=0 &&Pacchetto.getData_Partenza() != null && Pacchetto.getData_Ritorno() != null && numeroPersone>0 && Pacchetto != null )
		{
			Pacchetto.setDisponibile(true);
			Pacchetto.setEmail(UserManager.getUserDTO().getEmail());

			ArrayList<PacchettoEscursioneDTO> lEscursione = new ArrayList<PacchettoEscursioneDTO>();
			for (int i=0; i < currentE.size(); i++){
				PacchettoEscursioneDTO appPEDTO = new PacchettoEscursioneDTO();
				appPEDTO.setNomeEscursione(currentE.get(i));
				lEscursione.add(appPEDTO);
			}

			int idPacchetto = PacchettoManager.compraPersonalizzato(Pacchetto, current2, lEscursione, currentH, currentA, currentR, numeroPersone);
			Pacchetto.setId(idPacchetto);
			Pacchetto.setNumPren(numeroPersone);
			PacchettoManager.compraPacchettoPred(Pacchetto);
			
			FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("CreaPers", null);
			return "ViewPacComprato?faces-redirect=true";
		}
		else
		{
			FacesContext context = FacesContext.getCurrentInstance();
			context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR ,"Attenzione!", "Non lasciare campi vuoti!"));
			return"";
		}
		
	}
	
	public String creaPacchettoPersonalizzato(){
		
		if (dataPartenza != null && dataRitorno != null && numeroPersone>0 && Pacchetto != null && Pacchetto.getId() !=0 )
		{

			PacchettoPredefinitoDTO PacchettoPersonalizzato = new PacchettoPredefinitoDTO();
			PacchettoPersonalizzato.setData_Partenza(dataPartenza);
			PacchettoPersonalizzato.setData_Ritorno(dataRitorno);
			PacchettoPersonalizzato.setDisponibile(true);
			//query per trovare il nome del pacchetto
			PacchettoPersonalizzato.setNome(Pacchetto.getNome()+"di"+UserManager.getUserDTO().getEmail());
			//somma prezzi componenti
			PacchettoPersonalizzato.setPrezzo(Pacchetto.getPrezzo());
			PacchettoPersonalizzato.setTipo("personalizzato");
			PacchettoPersonalizzato.setEmail(UserManager.getUserDTO().getEmail());

			Pacchetto_cittaDTO pCitta = new Pacchetto_cittaDTO();
			ArrayList<PacchettoEscursioneDTO> lEscursione = new ArrayList<PacchettoEscursioneDTO>();
			PacchettoHotelDTO pHotel = new PacchettoHotelDTO();
			PacchettoMezzoDTO pMezzoAndata = new PacchettoMezzoDTO();
			PacchettoMezzoDTO pMezzoRitorno = new PacchettoMezzoDTO();

			pCitta.setCitta(cittaPacchetto);
			pHotel.setNomeHotel(nomeHotelPacchetto);
			pMezzoAndata.setMezzoDiTrasporto(mezzoAndata.getIdMezzo());
			pMezzoRitorno.setMezzoDiTrasporto(mezzoRitorno.getIdMezzo());

			for (int i=0; i < dualListaEscursione.getSource().size(); i++){
				PacchettoEscursioneDTO appPEDTO = new PacchettoEscursioneDTO();
				appPEDTO.setNomeEscursione(dualListaEscursione.getSource().get(i).getNomeEscursione());
				lEscursione.add(appPEDTO);
			}

			int idPacchetto = PacchettoManager.compraPersonalizzato(PacchettoPersonalizzato, pCitta, lEscursione, pHotel, pMezzoAndata, pMezzoRitorno, numeroPersone);
			PacchettoPersonalizzato.setId(idPacchetto);
			PacchettoPersonalizzato.setNumPren(numeroPersone);
			PacchettoManager.compraPacchettoPred(PacchettoPersonalizzato);
			
			FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("CreaPers", null);
			return "ViewPacComprato?faces-redirect=true";
		}
		else
		{
			FacesContext context = FacesContext.getCurrentInstance();
			context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR ,"Attenzione!", "Scegli un pacchetto e non lasciare campi vuoti!"));
			return"";
		}
		
		
	}
	
	
	public String pagaNO()
	{
		FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("CreaPers", null);
		return "PPers?faces-redirect=true";
	}
	
	
	public String giftListPers(){
		
		if (!current2.getCitta().isEmpty()&& !Pacchetto.getNome().isEmpty() &&!currentH.getNomeHotel().isEmpty() && currentR.getMezzoDiTrasporto() !=0 &&Pacchetto.getData_Partenza() != null && Pacchetto.getData_Ritorno() != null && numeroPersone>0 && Pacchetto != null )
		{
			Pacchetto.setDisponibile(true);
			Pacchetto.setEmail(UserManager.getUserDTO().getEmail());

			ArrayList<PacchettoEscursioneDTO> lEscursione = new ArrayList<PacchettoEscursioneDTO>();
			for (int i=0; i < currentE.size(); i++){
				PacchettoEscursioneDTO appPEDTO = new PacchettoEscursioneDTO();
				appPEDTO.setNomeEscursione(currentE.get(i));
				lEscursione.add(appPEDTO);
			}

			int idPacchetto = PacchettoManager.compraPersonalizzato(Pacchetto, current2, lEscursione, currentH, currentA, currentR, numeroPersone);
			Pacchetto.setId(idPacchetto);
			Pacchetto.setNumPren(numeroPersone);
			PacchettoManager.putInGiftList(Pacchetto);
			FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("CreaPers", null);
			return "ViewPacGL?faces-redirect=true";
		}
		else
		{
			FacesContext context = FacesContext.getCurrentInstance();
			context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR ,"Attenzione!", "Non lasciare campi vuoti!"));
			return"";
		}
	}
	
	public String aggiungiGiftList(){

		
		if (dataPartenza != null && dataRitorno != null && numeroPersone>0 && Pacchetto != null && Pacchetto.getId() !=0 )
		{
			PacchettoPredefinitoDTO PacchettoPersonalizzato = new PacchettoPredefinitoDTO();
			PacchettoPersonalizzato.setData_Partenza(dataPartenza);
			PacchettoPersonalizzato.setData_Ritorno(dataRitorno);
			PacchettoPersonalizzato.setDisponibile(true);
			//query per trovare il nome del pacchetto
			PacchettoPersonalizzato.setNome(Pacchetto.getNome()+"di"+UserManager.getUserDTO().getEmail());
			//somma prezzi componenti
			PacchettoPersonalizzato.setPrezzo(Pacchetto.getPrezzo());
			PacchettoPersonalizzato.setTipo("personalizzato");
			PacchettoPersonalizzato.setEmail(UserManager.getUserDTO().getEmail());

			Pacchetto_cittaDTO pCitta = new Pacchetto_cittaDTO();
			ArrayList<PacchettoEscursioneDTO> lEscursione = new ArrayList<PacchettoEscursioneDTO>();
			PacchettoHotelDTO pHotel = new PacchettoHotelDTO();
			PacchettoMezzoDTO pMezzoAndata = new PacchettoMezzoDTO();
			PacchettoMezzoDTO pMezzoRitorno = new PacchettoMezzoDTO();

			pCitta.setCitta(cittaPacchetto);
			pHotel.setNomeHotel(nomeHotelPacchetto);
			pMezzoAndata.setMezzoDiTrasporto(mezzoAndata.getIdMezzo());
			pMezzoRitorno.setMezzoDiTrasporto(mezzoRitorno.getIdMezzo());

			for (int i=0; i < dualListaEscursione.getSource().size(); i++){
				PacchettoEscursioneDTO appPEDTO = new PacchettoEscursioneDTO();
				appPEDTO.setNomeEscursione(dualListaEscursione.getSource().get(i).getNomeEscursione());
				lEscursione.add(appPEDTO);
			}

			int idPacchetto = PacchettoManager.compraPersonalizzato(PacchettoPersonalizzato, pCitta, lEscursione, pHotel, pMezzoAndata, pMezzoRitorno, numeroPersone);
			PacchettoPersonalizzato.setId(idPacchetto);
			PacchettoPersonalizzato.setNumPren(numeroPersone);
			PacchettoManager.putInGiftList(PacchettoPersonalizzato);
			
			FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("CreaPers", null);
			return "ViewPacGL?faces-redirect=true";
			
		}
		else
		{
			FacesContext context = FacesContext.getCurrentInstance();
			context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR ,"Attenzione!", "Scegli un pacchetto e non lasciare campi vuoti!"));
			return"";
		}
	}
	
	private String findNomeHotel(){
		return PacchettoManager.findHotel(Pacchetto.getId());
	}
	
	private String findCitta(){
		return PacchettoManager.findCitta(Pacchetto.getId());
	}
	
	private ArrayList<EscursioneDTO> findEscursione(){
		return PacchettoManager.findEscursione(Pacchetto.getId());
	}
	
	private String findCittaPartenza() {
		return MezzoManager.findCittaPartenza(idMezzoAndataPacchetto, cittaPacchetto);
	}
	
	public void selectHotel(){
	
		if(idPacchetto!=0){
			
			//set del pacchetto scelto
			for(int i=0; i<ListaPacchetto.size();i++){
				if (idPacchetto == ListaPacchetto.get(i).getId()) this.setPacchetto(ListaPacchetto.get(i));
			}
			
			cittaPacchetto=Pacchetto.getCitta();
			//cittaPacchetto= findCitta();
			nomeHotelPacchetto= findNomeHotel();
			ListaHotel = new ArrayList<HotelDTO>();
			ListaHotel=HotelManager.HotelList(cittaPacchetto);
		}else{
		    dualListaEscursione = new DualListModel<EscursioneDTO>();
		    listaEscursionePacchetto = new ArrayList<EscursioneDTO>();
		    ListaMezzo= new ArrayList<MezzoDTO>();
			ListaHotel = new ArrayList<HotelDTO>();
			ListaEscursioni = new ArrayList<EscursioneDTO>();
			ListaMezzoRitorno = new ArrayList<MezzoDTO>();
			listaEscursioneCheckBox = new ArrayList<EscursioneDTO>();
		}
		
	}
	
	public ArrayList<EscursioneDTO> getListaEscursionePacchetto() {
		return listaEscursionePacchetto;
	}

	public void setListaEscursionePacchetto(ArrayList<EscursioneDTO> listaEscursionePacchetto) {
		this.listaEscursionePacchetto = listaEscursionePacchetto;
	}

	public void selectEscursione(){
		if(!(Pacchetto.equals(null))){
			listaEscursionePacchetto=findEscursione();
			ListaEscursioni=EscursioneManager.EscursioneList(cittaPacchetto);
			//ListaEscursioni.removeAll(listaEscursionePacchetto);
			for(int i=0; i<ListaEscursioni.size();i++){
				for(int j=0; j<listaEscursionePacchetto.size();j++){
					if(ListaEscursioni.get(i).getNome().equals((listaEscursionePacchetto.get(j).getNome()))) ListaEscursioni.remove(i);
				}
			}	
			dualListaEscursione = new DualListModel<EscursioneDTO>(listaEscursionePacchetto, ListaEscursioni);
		}
		
	}
	
	public void selectMezzi(){
		if(!(Pacchetto.equals(null))){
			idMezzoAndataPacchetto = PacchettoManager.findMezzoAndata(Pacchetto.getId(), cittaPacchetto);
			idMezzoRitornoPacchetto = PacchettoManager.findMezzoRitorno(Pacchetto.getId(), cittaPacchetto);
			vecchioMezzoAndata = idMezzoAndataPacchetto;
			vecchioMezzoRitorno = idMezzoRitornoPacchetto;
			cittaPartenzaPacchetto = findCittaPartenza();
			ListaMezzo = MezzoManager.MezzoList(cittaPartenzaPacchetto, cittaPacchetto);
			ListaMezzoRitorno = MezzoManager.MezzoList(cittaPacchetto, cittaPartenzaPacchetto);
			this.aggiornaMezzoAndata();
			this.aggiornaMezzoRitorno();
		}
	}
	
	public void selectDate(){
		if(!(Pacchetto.equals(null))){
			dataPartenza = PacchettoManager.findDataPartenza(Pacchetto.getId());
			dataRitorno = PacchettoManager.findDataRitorno(Pacchetto.getId());
		}
	}
	
	public void retrievePacchetto(){
		ListaPacchetto=PacchettoManager.ListaPacchetti();
	}

	public void retrieveEscursioni(){
		ListaEscursioni=EscursioneManager.EscursioneList();
	}
	
	public void retrieveHotel(){
		ListaHotel=HotelManager.AllHotel();
	}
	
	public void retrieveMezzo(){
		ListaMezzo=MezzoManager.MezzoList();
	}

	public PacchettoPredefinitoDTO getPacchetto() {
		return Pacchetto;
	}

	public void setPacchetto(PacchettoPredefinitoDTO pacchetto) {
		Pacchetto = pacchetto;
	}

	public MezzoDTO getMezzoAndata() {
		return mezzoAndata;
	}

	public void setMezzoAndata(MezzoDTO mezzoAndata) {
		this.mezzoAndata = mezzoAndata;
	}

	public MezzoDTO getMezzoRitorno() {
		return mezzoRitorno;
	}

	public void setMezzoRitorno(MezzoDTO mezzoRitorno) {
		this.mezzoRitorno = mezzoRitorno;
	}

	public ArrayList<MezzoDTO> getListaMezzoRitorno() {
		return ListaMezzoRitorno;
	}

	public void setListaMezzoRitorno(ArrayList<MezzoDTO> listaMezzoRitorno) {
		ListaMezzoRitorno = listaMezzoRitorno;
	}

	public int getVecchioMezzoAndata() {
		return vecchioMezzoAndata;
	}

	public void setVecchioMezzoAndata(int vecchioMezzoAndata) {
		this.vecchioMezzoAndata = vecchioMezzoAndata;
	}

	public int getVecchioMezzoRitorno() {
		return vecchioMezzoRitorno;
	}

	public void setVecchioMezzoRitorno(int vecchioMezzoRitorno) {
		this.vecchioMezzoRitorno = vecchioMezzoRitorno;
	}
	
//	public void aggiornaCampiTime(){
//		int i=0;
//		while(ListaMezzo.get(i).getIdMezzo()!=idMezzo){
//			i++;
//		}
//		orePartenzaMezzo=ListaMezzo.get(i).getOraPartenza().getHours();
//		minutiPartenzaMezzo=ListaMezzo.get(i).getOraPartenza().getMinutes();
//		oreArrivoMezzo=ListaMezzo.get(i).getOraArrivo().getHours();
//		minutiArrivoMezzo=ListaMezzo.get(i).getOraArrivo().getMinutes();
//		prezzoMezzo=ListaMezzo.get(i).getPrezzo();
//	}
	
	public void aggiornaMezzoAndata(){
		for (int i=0; i < ListaMezzo.size(); i++){
			if (idMezzoAndataPacchetto==ListaMezzo.get(i).getIdMezzo()) this.setMezzoAndata(ListaMezzo.get(i));
		}
	}
	
	public void aggiornaMezzoRitorno(){
		for (int i=0; i < ListaMezzoRitorno.size(); i++){
			if (idMezzoRitornoPacchetto==ListaMezzoRitorno.get(i).getIdMezzo()) this.setMezzoRitorno(ListaMezzoRitorno.get(i));
		}
	}

	public ArrayList<EscursioneDTO> getListaEscursioneCheckBox() {
		return listaEscursioneCheckBox;
	}

	public void setListaEscursioneCheckBox(ArrayList<EscursioneDTO> listaEscursioneCheckBox) {
		this.listaEscursioneCheckBox = listaEscursioneCheckBox;
	}

	public DualListModel<EscursioneDTO> getDualListaEscursione() {
		return dualListaEscursione;
	}

	public void setDualListaEscursione(DualListModel<EscursioneDTO> dualListaEscursione) {
		this.dualListaEscursione = dualListaEscursione;
	}

	public Date getDatadiOggi() {
		return DatadiOggi;
	}

	public void setDatadiOggi(Date datadiOggi) {
		DatadiOggi = datadiOggi;
	}

	public int getNumeroPersone() {
		return numeroPersone;
	}

	public void setNumeroPersone(int numeroPersone) {
		this.numeroPersone = numeroPersone;
	}

	public Pacchetto_cittaDTO getCurrent2() {
		return current2;
	}

	public void setCurrent2(Pacchetto_cittaDTO current2) {
		this.current2 = current2;
	}

	public PacchettoMezzoDTO getCurrentA() {
		return currentA;
	}

	public void setCurrentA(PacchettoMezzoDTO currentA) {
		this.currentA = currentA;
	}

	public PacchettoMezzoDTO getCurrentR() {
		return currentR;
	}

	public void setCurrentR(PacchettoMezzoDTO currentR) {
		this.currentR = currentR;
	}
	
	public PacchettoHotelDTO getCurrentH() {
		return currentH;
	}

	public void setCurrentH(PacchettoHotelDTO currentH) {
		this.currentH = currentH;
	}

	public ArrayList <String> getCurrentE() {
		return currentE;
	}

	public void setCurrentE(ArrayList <String> currentE) {
		this.currentE = currentE;
	}
	
	public String PagaNo()
	{
		FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("CreaPers", null);
		return "PPers?faces-redirect=true";
	}

}
